3D models are made of geometrical entities.
3D models may be made of a cloud of points. However, more common 3D models are 3D mesh models composed of polygons, e.g. triangles, between connected points, also denoted vertices.
Typically, 3D meshes are represented by three types of data: connectivity data, geometry data and property data, usually stored in one or more files in memory. Connectivity data describe the adjacency relationship, if any, between the vertices composing the triangles, while geometry data specify vertex locations or positions, and property data specify attributes such as the normal vector per vertex or face, a colour per vertex or face, material reflectance and texture per face. Most 3D compression algorithms compress connectivity data and geometry data separately.
One known compression algorithm to encode the connectivity data is the Scalable Complexity 3D Mesh Compression-Triangle-Fan (SC3DMC-TFAN) approach of the MPEG Group, for instance as described in publication “A Triangle-FAN-based approach for low complexity 3D mesh compression” (Mamou K., Zaharia T., Preteux F., IEEE International Conference on Image Processing, 2009).
SC3DMC-TFAN includes traversing successively each vertex constituting the 3D mesh model; and for each vertex successively traversed, performing a triangle-based fan (T-FAN) analysis centred on the traversed vertex (i.e. one vertex of the triangles considered in the fan is the traversed vertex) to discover any new triangle not yet discovered when traversing the previous vertices, and determining (TFAN) connectivity data between vertices based on the newly discovered triangle or triangles. The T-FAN analysis makes it possible to obtain triangle-based fan portions, each made of a contiguous series of newly discovered triangle or triangles.
The fan portions and other data are encoded as connectivity data.
SC3DMC standard defines six encoding methods to encode the geometry data.
Most efficient known algorithms to encode the geometry data, i.e. point or vertex positions, are based on connectivity-based geometry prediction.
The main idea of this approach method is to use the connectivity between the vertices (i.e. the connectivity data) to generate a geometry predictor. One known method of the connectivity-based geometry prediction is the parallelogram predictor described for instance in publication “Triangle mesh compression” (Touma C. and Gotsman C., Proceedings of the 1998 Graphics Interface Conference, p. 26-34, 1998).
SC3DMC standard also provides that the attributes forming the property data are encoded using one of the same six defined encoding methods, including the parallelogram predictor. However, the most efficient one seems to be the so-called “Circular Differential” method wherein the attribute value is predicted by the last encoded colour value and the predicted value is modified if it exceeds a maximum size. In this example, the colour values are defined at vertex or point level, meaning that the 3D object contains an RGB colour for each vertex (or point).
Other attribute (e.g. colour) representations can be used, such as setting an attribute per face when the 3D object is a mesh, meaning that for each face the 3D object contains its related attribute value (e.g. RGB colour). Finally, an attribute can also be set for each edge of a face (e.g. a triangle).
Another known coding method of colour-per-point values is described in “Design, Implementation and Evaluation of a Point Cloud Codec for Tele-Immersive Video” (Rufael Mekuria et al., 2016, IEEE Transactions on Circuits and Systems for Video Technology). The described method is dedicated to the point cloud compression, and proposes a lossy colour attribute coding based on the JPEG standard.
To achieve that, the colour-per-point values are mapped to a 2D image. In details, the coordinates of the points are first coded in an octree structure. The latter can then be used to drive the mapping. In particular, the colour values are mapped to 8×8 blocks in the 2D image based on the depth first octree traversal, thereby defining a scanning order of the points. The colour values successively considered according to the scanning order are mapped to pixels of the blocks using a “zigzag pattern” as depicted in FIG. 8.
The resulting mapped 2D image is then encoded using a legacy JPEG codec.
The improved coding efficiency would allegedly result from the fact that in the depth first traversal subsequent pixels are often co-located.
However, the obtained coding efficiency is not satisfactory. More efficient methods for encoding or decoding attribute values in 3D objects, either point clouds or mesh objects, are thus searched.